package com.song.druid.annotation;

import java.lang.annotation.*;

/**
 * mybatis自定义ID生成策略注解
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface AutoId {
    /**
     * ID类型（默认雪花ID）
     * @return
     */
    IdType value() default IdType.SNOWFLAKE;

    /**
     * ID类型
     */
    enum IdType {
        /**
         * UUID去掉 -
         */
        UUID,

        /**
         * 雪花ID
         */
        SNOWFLAKE,

        /**
         * 时间戳加随机数
         */
        TIMESTAMP_RANDOM
    }
}
